%ifndef BOOT_MEMORY_PAGEATTRIBUTES
%define BOOT_MEMORY_PAGEATTRIBUTES

%define PAGE_SIZE (0X1000)
%define PAGE_DIRECTORY_SIZE (0x1000)
%define PAGE_TABLE_SIZE (0x1000)

; 页目录项
%define PDE_PRESENT (1)
%define PDE_WRITEABLE (1 << 1)
%define PDE_USER (1 << 2)
%define PDE_PAGE_LEVEL_WRITE_THROUGH (1 << 3)
%define PDE_PAGE_LEVEL_CACHE_DISABLE (1 << 4)
%define PDE_ACCESSED (1 << 5)
; 脏位，只在用做 4 MiB 页表索引时有效
%define PDE_DIRTY (1 << 6)
;; PS 位 clear： 指向页表；set： 指向 4 MiB 的页面
%define PDE_PAGE_SIZE (1 << 7)
%define PDE_GLOBAL (1 << 8)

; 页表项
%define PTE_PRESENT (1)
%define PTE_WRITEABLE (1 << 1)
%define PTE_USER (1 << 2)
%define PTE_PAGE_LEVEL_WRITE_THROUGH (1 << 3)
%define PTE_PAGE_LEVEL_CACHE_DISABLE (1 << 4)
%define PTE_ACCESSED (1 << 5)
%define PTE_DIRTY (1 << 6)
%define PTE_PAGE_ATTRIBUTE_TABLE (1 << 7)
%define PTE_GLOBAL (1 << 8)

%endif